// 签名配置和处理功能
function initSignatureFunctions(app) {
    // 扩展HttpRequestTool类，添加签名相关方法
    Object.assign(app, {
        openSignatureConfig() {
            // 切换到签名配置面板
            this.switchPanel('signature');
            this.showMessage('已切换到全局签名配置面板');
        },

        // 切换自定义签名配置显示/隐藏
        toggleCustomSignatureConfig() {
            const useCustomCheckbox = document.getElementById('use-custom-signature');
            const customConfigDiv = document.getElementById('signature-custom-config');

            if (useCustomCheckbox && customConfigDiv) {
                if (useCustomCheckbox.checked) {
                    customConfigDiv.style.display = 'block';
                } else {
                    customConfigDiv.style.display = 'none';
                }
            }

            // 更新签名状态显示
            this.updateSignatureStatus();
        },

        // 更新签名状态显示
        updateSignatureStatus() {
            const statusElement = document.getElementById('signature-status-text');
            if (!statusElement) return;

            const useCustom = document.getElementById('use-custom-signature')?.checked || false;
            const customKey = document.getElementById('signature-key')?.value || '';
            const globalKey = document.getElementById('default-signature-key')?.value || '';

            let statusText = '';

            if (useCustom && customKey) {
                statusText = '使用自定义签名配置（优先级高于全局配置）';
            } else if (useCustom && !customKey && globalKey) {
                statusText = '使用全局签名配置';
            } else if (!useCustom && globalKey) {
                statusText = '使用全局签名配置';
            } else {
                statusText = '未配置签名密钥 - 点击"全局配置"进行设置';
            }

            statusElement.textContent = statusText;
            statusElement.style.color = statusText.includes('未配置') ? 'var(--text-muted)' : 'var(--success-color)';
        }
    });
}

// 支持Tab缩进和自动插入示例代码
['custom-signature-code-local', 'custom-signature-code'].forEach(function(id) {
    var textarea = document.getElementById(id);
    if (textarea) {
        textarea.addEventListener('keydown', function(e) {
            if (e.key === 'Tab') {
                if (this.value.trim() === '') {
                    e.preventDefault();
                    const example = `// 支持的函数和变量：
// sha256Hex(str): SHA256哈希
// md5Hex(str): MD5哈希
// sha1Hex(str): SHA1哈希
// hmacSha256(str, key): HMAC-SHA256
// hmacMd5(str, key): HMAC-MD5
// base64Encode(str): Base64编码
// urlEncode(str): URL编码
// toUpperCase(str)/toLowerCase(str): 大小写转换
// jsonStringify(obj): 对象转JSON字符串
// params: 所有请求参数对象（query、表单）
// key: 签名密钥
// body: 请求体字符串
function generateSignature(params, key, body) {
    // 默认签名算法：按参数名排序，拼接参数值+密钥，sha256Hex
    const keys = Object.keys(params).filter(k => k.toLowerCase() !== 'signature').sort();
    let str = '';
    for (const k of keys) {
        str += params[k];
    }
    str += key;
    return sha256Hex(str);
}`;
                    this.value = example;
                    this.selectionStart = this.selectionEnd = this.value.length;
                } else {
                    e.preventDefault();
                    var start = this.selectionStart;
                    var end = this.selectionEnd;
                    this.value = this.value.substring(0, start) + '\t' + this.value.substring(end);
                    this.selectionStart = this.selectionEnd = start + 1;
                }
            }
        });
    }
});

// 导出函数以便在其他文件中使用
window.initSignatureFunctions = initSignatureFunctions;